<?php
$regions=array(
	'headers'=>'&lt;head&gt;',
	'head'=>'Шапка',
	'left'=>'Слева',
	'right'=>'Справа',
	'footer'=>'Подвал',
	'closure'=>'&lt/body&gt;',
	'ptup'=>'В начале каждого поста',
	'ptdw'=>'В конце каждого поста',
	/*'cmtfup'=>'Вверху формы добавления комментария',
	'cmtfdw'=>'Внизу формы добавления комментария',
	'cmtup'=>'В начале каждого комментария',
	'cmtdw'=>'В конце каждого комментария',*/
	'null'=>'Выполнять, но не отображать',
	'del'=>'Не использовать'
	);
define('EXT_BLOCKS_EDIT','style="display:block;float:right; width:10px;font-size:10px; font-weight:bold;" onmouseover="this.parentNode.style.outline=\'10000px solid #ccc\'" onmouseout="this.parentNode.style.outline=\'0\'" title="Редактировать этот блок"');
function ext_blocks_php($block,$echo=1){
	global $_s;
	if(file_exists('data/blocks/'.clean_str($block))){
		ob_start();
		@include 'data/blocks/'.clean_str($block);
		$a=ob_get_contents();
		ob_end_clean();
		if($a){
			if(ADMIN) $a = '<div class="block"><a href="'.generate_link('ext=blocks&act=edit&block='.$block).'" '.EXT_BLOCKS_EDIT.'>[E]</a>' . $a . '</div>';
			if($echo)echo $a;
			else return $a;
		}
		else return false;
	}
	else return false;
}
function ext_blocks_html($block,$echo=1){
	if(file_exists('data/blocks/'.clean_str($block))) {
		$a=(ADMIN?'<div class="block"><a href="'.generate_link('ext=blocks&act=edit&block='.$block).'" '.EXT_BLOCKS_EDIT.'>[E]</a>':'');
		$a.=@file_get_contents('data/blocks/'.clean_str($block));
		$a.=(ADMIN?'</div>':'');
		if($echo==1)echo $a;
		return $a;
	}
	else return false;
}
function ext_blocks_settings($block,$nolinks=0){
	global $blocks_settings, $regions;
	$b_type=$blocks_settings[$block][0];
	$b_region=$blocks_settings[$block][1];
	$b_order=(int)$blocks_settings[$block][2];
	if(!$b_region)$b_region='del';
	$reg_options='';
	$type_options='<option value="html"'.(($b_type!='php')?' selected="selected"':'').' style="font-weight:bold;">html</option><option value="php"'.(($b_type=='php')?' selected="selected"':'').'>php</option>';
	foreach($regions as $region=>$description){
		$reg_options.='<option value="'.($region=='del'?'':$region).'"'.(($b_region==$region)?' selected="selected"':'').'>'.$description.'</option>';
	}
	$str = '<fieldset><legend>'.$block.'</legend><label for="'.$block.'region">Отображать в:</label>'.
	' <select name="'.$block.'[region]" id="'.$block.'region" style="font-size:0.8em">'.$reg_options.'</select> '.
	'<label for="'.$block.'type">Тип:</label> '.
	'<select style="font-size:0.8em" name="'.$block.'[type]" id="'.$block.'type">'.$type_options.'</select> '.
	'<label for="'.$block.'order"><strong title="Порядок сортировки">Вес</strong><sup title="Более тяжелые блоки опускаются книзу, а легкие - сверху">?</sup>:</label> <input style="font-size:0.8em" type="text" maxlengh="3" size="3" name="'.$block.'[order]" id="'.$block.'order" value="'.$b_order.'" />'.
	($nolinks?'':' <a href="'.generate_link('ext=blocks&act=edit&block='.$block).'">Редактировать</a> | <a href="?ext=blocks&act=delete&block='.$block.'" onclick="if(!confirm(\'Вы уверены?\')) return false;">Удалить</a>').
	'</fieldset>';
	return array($blocks_settings[$block][1],$str);
}
function blocks_init(){
	global $regions,$blocks_settings,$null,$headers,$closure,$left,$right,$head,$footer,$ptup,$ptdw,$ptfup,$ptfdw,$cmtfup,$cmtfdw,$cmtup,$cmtdw;
	$blocks=dir2array('data/blocks');
	foreach($blocks as $block){
		if($set=gbuffer($block,'display')){
			$settings=explode("\n",$set);
			$blocks_settings[$block]=$settings;
			if(@$regions[$settings[1]]){
				$region=$settings[1];
				$a_{$region}[$block]=(int)@$settings[2];
			}
		}
	}

	foreach($regions as $region => $description){
		if(is_array(@$a_{$region})){
			asort($a_{$region},SORT_NUMERIC);
			foreach($a_{$region} as $block => $width){
				$block_content=($blocks_settings[$block][0]=='php')?ext_blocks_php($block,0):ext_blocks_html($block,0);
				${$region}.=$block_content;
			}
		}
	}
}
